Parent-Child Hierarchies এবং Path Functions

Big Data and Analytics - ড্যাক্স ফাংশন (Dax Functions)
248

DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। ড্যাক্সের Parent-Child Hierarchies এবং Path Functions ব্যবসায়িক বিশ্লেষণ এবং ডেটা মডেলিংয়ের জন্য গুরুত্বপূর্ণ টুলস। এই ফাংশনগুলি ব্যবহার করে আপনি hierarchical relationships তৈরি করতে পারেন, যেখানে একটি কলাম (যেমন, Employee ID) অন্য কলাম (যেমন, Manager ID) এর উপর ভিত্তি করে সম্পর্কিত থাকে।

এই প্রবন্ধে আমরা Parent-Child Hierarchies এবং Path Functions সম্পর্কে আলোচনা করব, যা ব্যবহারকারীদের recursive relationships মডেল করতে সহায়ক।


Parent-Child Hierarchies

Parent-Child Hierarchies ডেটার একটি বিশেষ ধরনের সম্পর্ক, যেখানে একটি কলামের মধ্যে সম্পর্কিত মানের পিতা বা মাতা (parent) সম্পর্কিত থাকে। একটি বাস্তব উদাহরণ হতে পারে Employee এবং Manager এর সম্পর্ক, যেখানে একজন কর্মী তার ম্যানেজারের অধীনে কাজ করেন।

এ ধরনের সম্পর্ক recursive relationship নামে পরিচিত, কারণ আপনি একটি কলাম থেকেই সম্পর্কিত অন্যান্য মান নির্ধারণ করতে পারেন। ড্যাক্সে Parent-Child Hierarchies তৈরি করার জন্য বেশ কিছু DAX functions রয়েছে, যেমন PATH, PATHCONTAINS, এবং PATHLENGTH


PATH Function

PATH ফাংশনটি একটি Parent-Child Hierarchy তৈরি করতে ব্যবহৃত হয়। এটি দুটি কলামের মধ্যে path বা পথ তৈরি করে, যেখানে একটি কলাম parent এবং অন্য কলাম child হিসেবে কাজ করে।

Syntax:

PATH(<parent_column>, <child_column>)
  • <parent_column>: এটি সেই কলাম, যা parent বা মাতা (যেমন, Manager ID) সম্পর্কিত।
  • <child_column>: এটি সেই কলাম, যা child বা সন্তান (যেমন, Employee ID) সম্পর্কিত।

ব্যবহার:

ধরা যাক, আপনার একটি Employees টেবিল রয়েছে যেখানে EmployeeID (কর্মী আইডি) এবং ManagerID (ম্যানেজার আইডি) রয়েছে। আপনি যদি প্রতিটি কর্মীর path বের করতে চান (যে ম্যানেজারের অধীনে কাজ করেন), তাহলে PATH ফাংশনটি ব্যবহার করবেন:

Employee Path = PATH(Employees[ManagerID], Employees[EmployeeID])

এটি প্রতিটি কর্মীর ManagerID থেকে EmployeeID পর্যন্ত সম্পর্কিত path তৈরি করবে।


PATHLENGTH Function

PATHLENGTH ফাংশনটি PATH ফাংশনের ফলস্বরূপ path এর দৈর্ঘ্য বের করতে ব্যবহৃত হয়। এটি নির্ধারণ করে যে, কতটি স্তর (levels) বা পদক্ষেপ (steps) একটি কর্মী তার ম্যানেজারের সাথে সম্পর্কিত।

Syntax:

PATHLENGTH(<path>)
  • : এটি PATH ফাংশনের ফলস্বরূপ তৈরি হওয়া পথ।

ব্যবহার:

আপনি যদি প্রতিটি কর্মীর path length বের করতে চান (যতটা স্তর বা পদক্ষেপ তারা ম্যানেজারের সাথে সম্পর্কিত), তাহলে আপনি PATHLENGTH ফাংশনটি ব্যবহার করতে পারেন:

Employee Path Length = PATHLENGTH(PATH(Employees[ManagerID], Employees[EmployeeID]))

এটি প্রতিটি কর্মীর path এর স্তরের সংখ্যা ফিরিয়ে দেবে, যা কর্মী এবং তার ম্যানেজার সম্পর্কিত।


PATHCONTAINS Function

PATHCONTAINS ফাংশনটি ব্যবহার করা হয় যখন আপনি চাচ্ছেন যে একটি নির্দিষ্ট child (সন্তান) parent এর মধ্যে অন্তর্ভুক্ত কিনা তা যাচাই করতে। এটি সাধারণত ব্যবহৃত হয় যখন আপনি দেখতে চান যে একটি কর্মী নির্দিষ্ট ম্যানেজারের অধীনে কাজ করছে কিনা।

Syntax:

PATHCONTAINS(<path>, <value>)
  • : এটি PATH ফাংশনের মাধ্যমে তৈরি হওয়া পথ।
  • : এটি সেই মান যা আপনি যাচাই করতে চান (যেমন, একটি নির্দিষ্ট EmployeeID বা ManagerID)।

ব্যবহার:

ধরা যাক, আপনি যদি দেখতে চান যে একটি নির্দিষ্ট EmployeeID কোনো ম্যানেজারের অধীনে কাজ করছে কি না, তাহলে PATHCONTAINS ফাংশনটি ব্যবহার করতে পারেন:

Is Employee Under Manager = 
    PATHCONTAINS(PATH(Employees[ManagerID], Employees[EmployeeID]), 101)

এখানে:

  • PATH(Employees[ManagerID], Employees[EmployeeID]) ফাংশনটি একটি কর্মী এবং তার ম্যানেজারের মধ্যে সম্পর্কিত পথ তৈরি করবে।
  • PATHCONTAINS ফাংশনটি চেক করবে যে EmployeeID 101 এই পথে আছে কিনা।

ব্যবহারিক উদাহরণ: Organizational Hierarchy Analysis

ধরা যাক, আপনি একটি Sales টেবিল নিয়ে কাজ করছেন যেখানে SalespersonID এবং ManagerID কলাম রয়েছে। আপনি যদি Salesperson এবং তার Manager এর মধ্যে সম্পর্ক তৈরি করতে চান, এবং সেই সাথে ম্যানেজারের স্তরের উপর ভিত্তি করে বিক্রয় পরিমাণ বিশ্লেষণ করতে চান, তাহলে আপনি PATH এবং PATHLENGTH ব্যবহার করতে পারেন।

PATH Function Example:

Salesperson Path = PATH(Sales[ManagerID], Sales[SalespersonID])

এটি প্রতিটি Salesperson এর জন্য তাদের ManagerID থেকে SalespersonID পর্যন্ত সম্পর্কিত path তৈরি করবে।

PATHLENGTH Function Example:

Salesperson Path Length = PATHLENGTH(PATH(Sales[ManagerID], Sales[SalespersonID]))

এটি প্রতিটি Salesperson এর path length নির্ধারণ করবে, অর্থাৎ তাদের ম্যানেজারের স্তরের সংখ্যা।

PATHCONTAINS Function Example:

Is Salesperson Under Manager = PATHCONTAINS(PATH(Sales[ManagerID], Sales[SalespersonID]), 202)

এটি চেক করবে যে SalespersonID 202 এর অধীনে কোন ManagerID আছে কিনা।


সারাংশ

Parent-Child Hierarchies এবং Path Functions হল DAX-এর অত্যন্ত গুরুত্বপূর্ণ টুলস, যা recursive relationships মডেল করতে ব্যবহৃত হয়। PATH, PATHLENGTH, এবং PATHCONTAINS ফাংশনগুলি ব্যবহার করে আপনি parent-child relationships তৈরি করতে পারেন এবং সেই সাথে তাদের উপর বিভিন্ন ধরনের বিশ্লেষণ করতে পারেন। Power BI বা Excel-এ এই ফাংশনগুলি ব্যবহার করে আপনি organizational hierarchies বা অন্য যেকোনো সম্পর্কিত ডেটা বিশ্লেষণ করতে পারবেন, যেমন কর্মী এবং ম্যানেজার বা প্রোডাক্ট এবং ক্যাটাগরি সম্পর্ক।

Content added By

PATH এবং PATHITEM দিয়ে Parent-Child Relationship পরিচালনা

278

DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। Parent-child relationships হল এমন সম্পর্ক যেখানে এক টেবিলের একটি কলাম তারই অন্য একটি কলামের উপর নির্ভরশীল থাকে, সাধারণত এটি ডেটা হায়ারার্কির মতো কাজ করে। DAX এর PATH এবং PATHITEM ফাংশনগুলি ব্যবহৃত হয় Parent-Child relationships বা hierarchical structures পরিচালনা করার জন্য, যেখানে একটি কলাম অন্য কলামের উপর নির্ভরশীল থাকে, যেমন Category এবং Sub-category

এই প্রবন্ধে আমরা PATH এবং PATHITEM ফাংশনগুলির সাহায্যে Parent-Child relationships কীভাবে পরিচালনা করা যায়, তা বিস্তারিতভাবে আলোচনা করব।


১. PATH ফাংশন

PATH ফাংশনটি Parent-Child relationship তৈরি করতে ব্যবহৃত হয়। এটি দুটি কলামের মধ্যে সম্পর্ক তৈরি করে, যেখানে একটি কলাম parent এবং অন্যটি child হিসেবে কাজ করে। এই ফাংশনটি একটি path তৈরি করে, যেখানে প্রতিটি parent-child সম্পর্কের তথ্য একটি স্ট্রিং আকারে সংরক্ষিত থাকে।

Syntax:

PATH(<parent_column>, <child_column>)
  • <parent_column>: এই কলামে parent বা মূল ডেটা থাকে।
  • <child_column>: এই কলামে child বা সম্পর্কিত ডেটা থাকে।

ব্যবহার:

ধরা যাক, আপনার একটি Employee টেবিল রয়েছে, যেখানে EmployeeID হল child_column এবং ManagerID হল parent_column। আপনি যদি একজন কর্মচারীর path বের করতে চান, যেখানে সেই কর্মচারীর manager এর উপর ভিত্তি করে, তাহলে আপনি PATH ফাংশনটি ব্যবহার করতে পারেন:

Employee Path = PATH(Employee[EmployeeID], Employee[ManagerID])

এটি একটি স্ট্রিং তৈরি করবে, যা EmployeeID এবং ManagerID এর মধ্যে সম্পর্কিত path তৈরি করবে।


২. PATHITEM ফাংশন

PATHITEM ফাংশনটি PATH ফাংশনের তৈরি করা path স্ট্রিং থেকে নির্দিষ্ট একটি আইটেম বের করতে ব্যবহৃত হয়। এই ফাংশনটি একটি path স্ট্রিং থেকে নির্দিষ্ট parent-child সম্পর্ক বের করার জন্য ব্যবহৃত হয়, যেমন আপনি path থেকে কোন নির্দিষ্ট স্তরের parent বা child বের করতে চান।

Syntax:

PATHITEM(<path>, <position>, <datatype>)
  • : এটি PATH ফাংশনের মাধ্যমে তৈরি করা স্ট্রিং।
  • : এটি সেই স্তরের অবস্থান যা আপনি বের করতে চান (যেমন 1, 2, 3 ইত্যাদি)।
  • : এটি নির্দিষ্ট করে আপনি যে ধরনের মান চান, যেমন STRING বা INTEGER

ব্যবহার:

ধরা যাক, আপনি যদি Employee টেবিলের path থেকে manager (level 1) বের করতে চান, তাহলে আপনি PATHITEM ফাংশনটি ব্যবহার করতে পারেন:

Manager Level 1 = PATHITEM(Employee[Employee Path], 1, STRING)

এটি Employee Path থেকে প্রথম স্তরের (অর্থাৎ manager) নাম বের করবে।


৩. PATHLENGTH ফাংশন

PATHLENGTH ফাংশনটি PATH ফাংশনের মাধ্যমে তৈরি করা path স্ট্রিংটির দৈর্ঘ্য নির্ধারণ করে, অর্থাৎ কতটি parent-child সম্পর্ক একটি path তে আছে।

Syntax:

PATHLENGTH(<path>)
  • : এটি PATH ফাংশনের মাধ্যমে তৈরি করা স্ট্রিং।

ব্যবহার:

যেমন, আপনি যদি Employee Path এর দৈর্ঘ্য বের করতে চান:

Employee Path Length = PATHLENGTH(Employee[Employee Path])

এটি Employee টেবিলের Employee Path থেকে কতগুলি স্তর (level) আছে তা রিটার্ন করবে।


৪. কাস্টম Parent-Child Relationship তৈরি করা

PATH এবং PATHITEM ফাংশনগুলি ব্যবহৃত হয় যখন আপনি একটি parent-child relationship তৈরি করতে চান এবং সেটির মধ্যে বিভিন্ন স্তরের মান বের করতে চান। নিচে একটি উদাহরণ দেয়া হলো যেখানে Employee টেবিলের EmployeeID এবং ManagerID ব্যবহার করে Parent-Child relationship তৈরি করা হয়েছে এবং এরপর স্তরের ভিত্তিতে Manager বা Employee তথ্য বের করা হয়েছে।

কাস্টম উদাহরণ:

ধরা যাক, আমাদের একটি Employee টেবিল রয়েছে, যেখানে EmployeeID এবং ManagerID রয়েছে। আমরা যদি প্রতিটি কর্মচারীর manager's name বের করতে চাই, তাহলে প্রথমে PATH ফাংশনটি ব্যবহার করে path তৈরি করতে হবে, এবং তারপর PATHITEM ফাংশনটি ব্যবহার করে প্রথম স্তরের Manager বের করা হবে।

Employee Path = PATH(Employee[EmployeeID], Employee[ManagerID])

Manager Level 1 = PATHITEM(Employee[Employee Path], 1, STRING)

এখানে:

  • Employee Path একটি স্ট্রিং তৈরি করবে যেখানে EmployeeID এবং ManagerID এর মধ্যে সম্পর্কের path থাকবে।
  • Manager Level 1 প্রথম স্তরের Manager বা parent বের করবে।

PATH এবং PATHITEM এর সুবিধা

  1. Parent-Child Hierarchies তৈরি করা: আপনি যখন parent-child relationships পরিচালনা করতে চান, তখন PATH এবং PATHITEM ফাংশন ব্যবহার করে সহজে hierarchies তৈরি করতে পারেন।
  2. Dynamic Hierarchical Data Visualization: এই ফাংশনগুলির মাধ্যমে ডায়নামিক ডেটা visualization করা সহজ হয়, যেমন একটি ড্যাশবোর্ডে কর্মচারীদের পারফরম্যান্স এবং তাদের ম্যানেজারের তথ্য।
  3. Level-wise Data Retrieval: আপনি PATHITEM ব্যবহার করে যেকোনো স্তরের parent-child সম্পর্ক বের করতে পারেন, যেমন ১ম স্তর, ২য় স্তর ইত্যাদি।

সারাংশ

PATH এবং PATHITEM ফাংশনগুলি Parent-Child relationships পরিচালনা করতে ব্যবহৃত হয়, যা hierarchical structures তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ। PATH ফাংশনটি একটি parent-child relationship তৈরি করে এবং PATHITEM ফাংশনটি সেই relationship এর নির্দিষ্ট স্তরের মান বের করে। এই ফাংশনগুলির মাধ্যমে আপনি Power BI বা Excel-এ parent-child hierarchies তৈরি করতে পারেন, যা dynamic reporting এবং data visualization করতে সাহায্য করে।

Content added By

PATHCONTAINS দিয়ে Hierarchy Check করা

254

DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। PATHCONTAINS একটি বিশেষ DAX ফাংশন যা hierarchy ডেটা চেক করতে ব্যবহৃত হয়, বিশেষত parent-child hierarchy-তে ব্যবহৃত হয়।

PATHCONTAINS ফাংশনটি ব্যবহার করে আপনি নির্ধারণ করতে পারেন যে একটি নির্দিষ্ট মান (child) অন্য কোনো মান (parent) এর অংশ কিনা, যা একটি হায়ারার্কিতে সম্পর্কিত।

এই প্রবন্ধে আমরা PATHCONTAINS ফাংশনটি কীভাবে ব্যবহার করা হয় এবং এটি কীভাবে hierarchy check করতে সহায়ক হয় তা আলোচনা করব।


PATHCONTAINS ফাংশন কী?

PATHCONTAINS ফাংশনটি parent-child hierarchy তে ব্যবহৃত হয়। এটি একটি টেবিলের মধ্যে প্যারেন্ট এবং চাইল্ড সম্পর্কের ভিত্তিতে একটি নির্দিষ্ট প্যারেন্টের মধ্যে কোনো চাইল্ড অবস্থিত কিনা তা পরীক্ষা করে। সাধারণত PATHCONTAINS ফাংশনটি PATH ফাংশনের সাথে ব্যবহৃত হয়, যা একটি parent-child সম্পর্কের path তৈরি করে।

Syntax:

PATHCONTAINS(<path>, <value>)
  • : এটি একটি column যা PATH ফাংশন দিয়ে তৈরি করা হয়েছে এবং parent-child সম্পর্কের সম্পূর্ণ পথ ধারণ করে।
  • : এটি একটি মান, যেটি আপনি চেক করতে চান যে এটি path এর মধ্যে রয়েছে কিনা।

PATHCONTAINS ফাংশনের ব্যবহার

ধরা যাক, আপনার Employee টেবিল আছে, যেখানে প্রতিটি EmployeeID এবং ManagerID কলাম রয়েছে। EmployeeID হল কর্মচারীর শনাক্তকরণ কোড এবং ManagerID হল সেই কর্মচারীর ব্যবস্থাপকের শনাক্তকরণ কোড। আপনি যদি জানতে চান যে একটি নির্দিষ্ট কর্মচারী কোনো প্যারেন্ট (ম্যানেজার) এর অধীনে কাজ করছে কিনা, তাহলে আপনি PATHCONTAINS ফাংশনটি ব্যবহার করতে পারেন।

উদাহরণ ১: PATHCONTAINS দিয়ে চেক করা

ধরা যাক, আপনি একটি Employee টেবিলের মধ্যে প্রতিটি কর্মচারীর ম্যানেজারের অধীনে কাজ করছে কিনা তা চেক করতে চান। প্রথমে, আপনি PATH ফাংশন ব্যবহার করে একটি পাথ তৈরি করবেন:

Employee Path = PATH(Employee[EmployeeID], Employee[ManagerID])

এখানে, PATH ফাংশনটি কর্মচারী এবং তাদের ব্যবস্থাপক (প্যারেন্ট) এর মধ্যে সম্পর্কের পাথ তৈরি করবে।

তারপর, আপনি PATHCONTAINS ফাংশন ব্যবহার করে চেক করতে পারেন, যদি একটি কর্মচারী নির্দিষ্ট ম্যানেজারের অধীনে কাজ করে:

Is Under Manager = PATHCONTAINS(Employee[Employee Path], 5)

এখানে, 5 হল ম্যানেজারের EmployeeID এবং Is Under Manager কলামটি জানাবে যে এই কর্মচারী ম্যানেজারের অধীনে কাজ করছে কিনা (যদি TRUE হয়, তবে কর্মচারী ঐ ম্যানেজারের অধীনে কাজ করছে, অন্যথায় FALSE হবে)।


PATHCONTAINS ফাংশনের ব্যবহারিক প্রয়োগ

PATHCONTAINS ফাংশনটি একটি parent-child hierarchy-তে ব্যবহৃত হয়, যেখানে আপনি চাইলে সহজেই বুঝতে পারেন যে কোনো নির্দিষ্ট child একটি নির্দিষ্ট parent এর অংশ কিনা। এটি Sales, Employee Management, বা Product Categories এর মতো বিভিন্ন ধরনের ডেটাতে ব্যবহৃত হতে পারে যেখানে প্যারেন্ট-চাইল্ড সম্পর্ক রয়েছে।

উদাহরণ ২: বিভাগ ভিত্তিক হিসাব

ধরা যাক, একটি Product টেবিল রয়েছে, যেখানে প্রতিটি পণ্য একটি ক্যাটেগরির অন্তর্ভুক্ত। এবং আপনি যদি জানতে চান, একটি পণ্য একটি নির্দিষ্ট ক্যাটেগরির অন্তর্গত কিনা, তাহলে PATHCONTAINS ফাংশন ব্যবহার করা যাবে।

Product Path = PATH(Product[ProductID], Product[CategoryID])

এখানে, PATH ফাংশনটি পণ্যের মধ্যে parent-child relationship তৈরি করবে যেখানে ProductID পণ্যের আইডি এবং CategoryID পণ্যের ক্যাটেগরি আইডি।

তারপর, আপনি PATHCONTAINS ব্যবহার করতে পারেন:

Is Under Category = PATHCONTAINS(Product[Product Path], 3)

এখানে 3 হল একটি নির্দিষ্ট ক্যাটেগরি আইডি, এবং Is Under Category কলামটি জানাবে যে পণ্যটি এই ক্যাটেগরির অংশ কিনা।


PATHCONTAINS ফাংশন ব্যবহার করার সময় গুরুত্বপূর্ণ পয়েন্ট

  1. Parent-Child Hierarchy: PATHCONTAINS ফাংশনটি শুধুমাত্র parent-child hierarchy-তে কার্যকর। এটি সম্পর্কিত কলামের মধ্যে কোনো হায়ারার্কি তৈরি করতে সহায়ক হয়।
  2. Performance: যেহেতু PATHCONTAINS অনেক ডেটার উপর কাজ করতে পারে, তাই এটি large datasets-এ প্রয়োগ করার সময় পারফরম্যান্স সংক্রান্ত কিছু সমস্যা হতে পারে। সুতরাং, যদি ডেটার সংখ্যা অনেক বেশি হয়, তবে এটি ব্যবহারের আগে পারফরম্যান্স পরীক্ষা করা উচিত।
  3. Combination with Other Functions: আপনি PATHCONTAINS ফাংশনটি CALCULATE, FILTER, বা IF ফাংশনের সাথে ব্যবহার করতে পারেন, যা আপনাকে আরো কাস্টম বিশ্লেষণ এবং ফিল্টারিং করতে সহায়তা করবে।

সারাংশ

PATHCONTAINS হল DAX-এর একটি গুরুত্বপূর্ণ ফাংশন যা parent-child hierarchy চেক করার জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আপনি সহজেই চিহ্নিত করতে পারেন যে একটি নির্দিষ্ট পণ্য, কর্মচারী, বা অন্য কোন বস্তু একটি নির্দিষ্ট প্যারেন্টের অধীনে আছে কিনা। এই ফাংশনটি Sales, Employee Management, এবং Product Categorization এর মতো ক্ষেত্রে ব্যবহৃত হতে পারে, যেখানে ডেটাতে প্যারেন্ট-চাইল্ড সম্পর্ক আছে।

Content added By

LOOKUPVALUE দিয়ে Parent-Child Data হ্যান্ডেল করা

263

DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। LOOKUPVALUE ফাংশনটি ডেটা মডেলিং এবং বিশ্লেষণে খুবই গুরুত্বপূর্ণ, বিশেষত যখন parent-child relationships হ্যান্ডেল করতে হয়। এটি একটি টেবিল থেকে সম্পর্কিত মান বের করার জন্য ব্যবহৃত হয়, যেখানে একটি কলাম থেকে মান দেখে অন্য কলাম থেকে সম্পর্কিত মান রিটার্ন করা হয়।

এই প্রবন্ধে আমরা LOOKUPVALUE ফাংশনটি কীভাবে parent-child relationships হ্যান্ডেল করতে ব্যবহৃত হয় তা বিস্তারিতভাবে আলোচনা করব।


LOOKUPVALUE ফাংশন কী?

LOOKUPVALUE ফাংশনটি একটি নির্দিষ্ট কলামে মানের ভিত্তিতে অন্য একটি কলাম থেকে মান রিটার্ন করে। এটি তখন ব্যবহৃত হয় যখন একটি টেবিলের মধ্যে একটি parent বা child সম্পর্ক থাকে এবং আপনি ঐ সম্পর্কের ভিত্তিতে মান বের করতে চান। এটি সাধারণত key-value pairs বা relationships সঠিকভাবে পরিচালনা করতে ব্যবহৃত হয়।

Syntax:

LOOKUPVALUE(<result_column>, <search_column>, <search_value>, [<search_column2>, <search_value2>], ...)
  • <result_column>: যে কলাম থেকে মান বের করতে চান।
  • <search_column>: যে কলামটি অনুসন্ধান করা হবে।
  • <search_value>: সেই কলামের জন্য মান যা আপনি অনুসন্ধান করতে চান।
  • [<search_column2>, <search_value2>]: ঐচ্ছিক, যদি আরও শর্ত দিতে চান তবে অতিরিক্ত কলাম এবং মান উল্লেখ করা যেতে পারে।

Parent-Child Relationship এর উদাহরণ

ধরা যাক, আপনার একটি Employee টেবিল আছে যেখানে EmployeeID, EmployeeName, এবং ManagerID কলাম রয়েছে। ManagerID হল EmployeeID-এর সাথে সম্পর্কিত, অর্থাৎ এটি parent-child সম্পর্ক তৈরি করে। আপনি যদি একটি Manager Name কলাম তৈরি করতে চান, যেটি ManagerID এর ভিত্তিতে সেই কর্মচারীর নাম দেখাবে, তাহলে LOOKUPVALUE ফাংশনটি ব্যবহার করা যেতে পারে।

ব্যবহার উদাহরণ:

ধরা যাক, আমাদের Employee টেবিলের মধ্যে EmployeeID, EmployeeName, এবং ManagerID কলাম রয়েছে। এখন আমরা চাই ManagerID এর ভিত্তিতে প্রতিটি কর্মচারীর Manager Name বের করতে।

Manager Name = LOOKUPVALUE(Employee[EmployeeName], Employee[EmployeeID], Employee[ManagerID])

এখানে:

  • LOOKUPVALUE(Employee[EmployeeName], Employee[EmployeeID], Employee[ManagerID]): এটি Employee টেবিলের মধ্যে ManagerID এর জন্য EmployeeID অনুসন্ধান করে এবং সংশ্লিষ্ট EmployeeName রিটার্ন করবে।
  • Employee[EmployeeID] এবং Employee[ManagerID] এর মধ্যে সম্পর্ক দেখে ফাংশনটি প্রত্যেক কর্মচারীর ম্যানেজারের নাম বের করবে।

Parent-Child Relationship উদাহরণে আরো উন্নত কেস

ধরা যাক, আপনি যদি চান যে Manager Name বের করার সময় Employee টেবিলের ManagerID অনুসারে এবং DepartmentID অনুসারে ম্যানেজারের নাম বের করা হোক, তবে আপনি LOOKUPVALUE ফাংশনটি ব্যবহার করতে পারেন।

ব্যবহার উদাহরণ:

Manager Name by Department = LOOKUPVALUE(
    Employee[EmployeeName], 
    Employee[EmployeeID], 
    Employee[ManagerID], 
    Employee[DepartmentID], 
    Employee[DepartmentID]
)

এখানে:

  • প্রথম শর্ত হল Employee[ManagerID] এবং Employee[EmployeeID] এর মধ্যে সম্পর্কিত EmployeeName
  • দ্বিতীয় শর্ত হল DepartmentID, যা নিশ্চিত করে যে ম্যানেজার একই DepartmentID এর মধ্যে রয়েছে।

এই ফর্মুলাটি Manager Name by Department বের করবে, যেখানে ManagerID এবং DepartmentID এর ভিত্তিতে ম্যানেজারের নাম রিটার্ন হবে।


LOOKUPVALUE এর সুবিধা এবং প্রয়োগ

  1. Multiple Conditions Handling:
    • LOOKUPVALUE ফাংশনটি একাধিক শর্তের উপর ভিত্তি করে সম্পর্কিত মান বের করতে সহায়ক। আপনি যদি চান যে parent-child relationship ভিত্তিতে multiple conditions সাপেক্ষে ডেটা খুঁজে বের করা হোক, তবে এটি খুবই উপকারী।
  2. Efficient Data Retrieval:
    • LOOKUPVALUE ব্যবহার করে আপনি খুব সহজে টেবিল থেকে সম্পর্কিত মান বের করতে পারেন। এটি filter context তৈরি করতে এবং data lookup করতে সহায়ক।
  3. No Direct Relationship Needed:
    • যখন দুইটি টেবিলের মধ্যে সরাসরি সম্পর্ক না থাকে, তখন LOOKUPVALUE ফাংশনটি ব্যবহার করে আপনি এক টেবিল থেকে অন্য টেবিলের মান বের করতে পারেন, যা relationship functions এর মাধ্যমে করা সম্ভব নয়।

LOOKUPVALUE এর সীমাবদ্ধতা

  1. Multiple Matches:
    • যদি আপনার search_column-এ একাধিক মিলে যাওয়া মান থাকে, তবে LOOKUPVALUE শুধুমাত্র প্রথমটি ফেরত দেয়। এটি many-to-one relationship এর ক্ষেত্রে কার্যকরী, কিন্তু one-to-many relationship-এ সতর্কতা অবলম্বন করা উচিত।
  2. Performance:
    • বড় টেবিল বা অনেক শর্তযুক্ত ডেটা বিশ্লেষণের ক্ষেত্রে, LOOKUPVALUE ফাংশনটি কিছুটা ধীর হতে পারে। এতে ডেটার সঠিক মডেলিং এবং ফিল্টারিং কৌশল অপরিহার্য।

সারাংশ

LOOKUPVALUE ফাংশনটি parent-child relationships হ্যান্ডেল করতে একটি শক্তিশালী টুল। এটি আপনাকে এক টেবিল থেকে অন্য টেবিলের সম্পর্কিত মান বের করতে সাহায্য করে, এমনকি যখন সরাসরি সম্পর্ক না থাকে। আপনি যখন একাধিক শর্ত বা কলামের ভিত্তিতে সম্পর্কিত ডেটা খুঁজে বের করতে চান, তখন LOOKUPVALUE ফাংশনটি খুবই কার্যকরী। Power BI বা Excel-এ parent-child relationship বিশ্লেষণ করার সময় এটি খুবই গুরুত্বপূর্ণ এবং এটি ডেটা মডেলিং ও বিশ্লেষণকে আরো সহজ এবং কার্যকরী করে তোলে।

Content added By

Hierarchical Data এর জন্য Recursive Functions

267

DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, Excel PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। DAX-এর মধ্যে Recursive Functions ব্যবহার করা হয় যখন ডেটার মধ্যে hierarchical structure থাকে, যেমন organizational structure, product categories, বা account hierarchies

হায়ারার্কিকাল ডেটার জন্য Recursive Functions খুবই গুরুত্বপূর্ণ কারণ এটি ডেটা সম্পর্কিত হায়ারার্কির মধ্যে সম্পর্কিত মান বের করতে সহায়ক। এখানে আমরা DAX Recursive Functions এবং hierarchical data-এর জন্য ব্যবহৃত বিভিন্ন ফাংশন যেমন PATH, PATHITEM, PATHLENGTH, এবং USERELATIONSHIP নিয়ে আলোচনা করব।


১. PATH ফাংশন

PATH ফাংশনটি একটি নির্দিষ্ট hierarchical structure-এর মধ্যে যেকোনো parent-child relationship-এর পথ বের করতে ব্যবহৃত হয়। এটি বিশেষভাবে organizational hierarchies বা account structures এর জন্য ব্যবহার করা হয়।

Syntax:

PATH(<parent_column>, <child_column>)
  • <parent_column>: প্যারেন্ট কলাম (যেমন, প্রতিটি আইটেমের প্যারেন্ট বা শ্রেণী).
  • <child_column>: চাইল্ড কলাম (যেমন, প্রতিটি আইটেমের চাইল্ড বা উপশ্রেণী).

ব্যবহার:

ধরা যাক, আপনার Employee টেবিল রয়েছে, যেখানে EmployeeID এবং ManagerID রয়েছে। আপনি যদি কর্মচারীদের managerial hierarchy দেখতে চান, তাহলে PATH ফাংশনটি ব্যবহার করা হবে:

Employee Path = PATH(Employees[ManagerID], Employees[EmployeeID])

এখানে:

  • PATH(Employees[ManagerID], Employees[EmployeeID]) প্রত্যেক কর্মচারীর জন্য তাদের Manager থেকে তাদের নিজস্ব EmployeeID পর্যন্ত একটি পথ তৈরি করবে।

২. PATHITEM ফাংশন

PATHITEM ফাংশনটি PATH ফাংশনের সাথে সম্পর্কিত এবং এটি নির্দিষ্ট একটি পদক্ষেপ বা আইটেম থেকে hierarchy path এর একটি নির্দিষ্ট অংশ বের করতে ব্যবহৃত হয়।

Syntax:

PATHITEM(<path>, <position>, <data_type>)
  • : এটি একটি পাথ কলাম যা PATH ফাংশন থেকে আসবে।
  • : এখানে আপনি নির্দিষ্ট করেন যে, আপনি পাথের কোন পদক্ষেপটি চান (যেমন, 1, 2, 3,...).
  • <data_type> (optional): এটি STRING বা INTEGER হতে পারে, নির্দিষ্ট করে আপনি কিসের রিটার্ন চান।

ব্যবহার:

ধরা যাক, আপনি একটি কর্মচারীর manager এর স্তর দেখতে চান, তাহলে PATHITEM ফাংশনটি ব্যবহার করতে হবে:

Employee Level = PATHITEM(Employees[EmployeePath], 1, INTEGER)

এখানে:

  • PATHITEM ফাংশনটি EmployeePath এর প্রথম পদক্ষেপ বা প্রথম ManagerID ফেরত দিবে।
  • INTEGER ডেটাটাইপ হিসাবে রিটার্ন করবে।

৩. PATHLENGTH ফাংশন

PATHLENGTH ফাংশনটি PATH ফাংশন থেকে তৈরি হওয়া পাথের দৈর্ঘ্য নির্ধারণ করতে ব্যবহৃত হয়, অর্থাৎ কতটি পদক্ষেপ রয়েছে।

Syntax:

PATHLENGTH(<path>)
  • : এটি PATH ফাংশন দ্বারা তৈরি হওয়া পাথ।

ব্যবহার:

ধরা যাক, আপনি যদি কর্মচারীর hierarchy depth জানতে চান (কতটি স্তর রয়েছে), তাহলে PATHLENGTH ফাংশনটি ব্যবহার করবেন:

Employee Depth = PATHLENGTH(Employees[EmployeePath])

এখানে:

  • PATHLENGTH ফাংশনটি EmployeePath কলামের দৈর্ঘ্য বের করবে, যা কর্মচারীর হায়ারার্কি স্তরের সংখ্যা দেখাবে।

৪. USERELATIONSHIP ফাংশন

USERELATIONSHIP ফাংশনটি inactive relationships সক্রিয় করতে ব্যবহৃত হয়, যখন আপনাকে একাধিক সম্পর্কের মধ্যে থেকে একটি সম্পর্ক সক্রিয় করতে হয়।

Syntax:

USERELATIONSHIP(<column1>, <column2>)
  • : প্রথম কলাম, যা একটি টেবিলের অংশ।
  • : দ্বিতীয় কলাম, যা অন্য টেবিলের অংশ।

ব্যবহার:

ধরা যাক, Sales এবং Products টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে। আপনি যদি UserID এর মাধ্যমে সম্পর্কিত ডেটা বের করতে চান, তবে USERELATIONSHIP ফাংশনটি ব্যবহার করা হবে:

Sales by Product = CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Sales[ProductID], Products[ProductID]))

এখানে:

  • USERELATIONSHIP ফাংশনটি Products[ProductID] এবং Sales[ProductID] এর মধ্যে ইনঅ্যাকটিভ সম্পর্কটি সক্রিয় করবে।
  • তারপর, CALCULATE ফাংশনটি বিক্রয়ের পরিমাণের যোগফল বের করবে।

Recursive Calculation Example Using PATH

ধরা যাক, আপনি একটি parent-child hierarchy এর জন্য কর্মচারীদের managerial level বের করতে চান। PATH এবং PATHITEM ফাংশনগুলির সাহায্যে আপনি কর্মচারীদের স্তরের সম্পর্ক বের করতে পারেন।

Manager Level = PATHITEM(Employees[EmployeePath], 2, INTEGER)

এখানে:

  • EmployeePath কলামটি PATH ফাংশনের মাধ্যমে তৈরি হয়েছে এবং PATHITEM এর মাধ্যমে কর্মচারীর second manager স্তর বের করা হয়েছে।

Recursive Functions এর উপকারিতা

  1. Hierarchical Data Analysis:
    • PATH, PATHITEM, এবং PATHLENGTH ফাংশনগুলি ডেটার hierarchical relationships বিশ্লেষণ করতে ব্যবহৃত হয়, যেমন organizational structure বা product category
  2. Efficient Calculations:
    • Recursive calculations করার মাধ্যমে আপনি সহজে parent-child relationships এর মধ্যে গভীরতা বা স্তর বের করতে পারেন, যা অন্যথায় খুব জটিল হতে পারে।
  3. Dynamic Reporting:
    • এই ফাংশনগুলির মাধ্যমে আপনি dynamic reports তৈরি করতে পারেন, যেখানে ডেটার relationship অনুযায়ী তথ্য দেখানো হয়।
  4. Multiple Relationships:
    • USERELATIONSHIP ফাংশনটি একাধিক সম্পর্ক পরিচালনা করতে সাহায্য করে, যেখানে আপনাকে ডেটার বিভিন্ন স্তরের তথ্য একত্রিত করার প্রয়োজন হতে পারে।

সারাংশ

Recursive Functions DAX-এ একটি শক্তিশালী টুল যা hierarchical data বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য ব্যবহৃত হয়। PATH, PATHITEM, PATHLENGTH, এবং USERELATIONSHIP ফাংশনগুলি ডেটার মধ্যে parent-child relationships এবং managerial hierarchies নির্ধারণ করতে সাহায্য করে। এই ফাংশনগুলো Power BI বা Excel-এ জটিল hierarchical data বিশ্লেষণকে সহজ করে তোলে এবং কাস্টম রিপোর্টিংয়ের জন্য কার্যকরী ক্যালকুলেশন তৈরি করতে সহায়ক হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...